#ifndef MEET_MESSAGE_H_
#define MEET_MESSAGE_H_

#include "ariba/ariba.h"

using_serialization;

class MeetMessage  : public ariba::Message
{
	VSERIALIZEABLE;
public:
    typedef enum {
        Error = 0,
        Hello = 1,
        Invite = 2,
        Accept = 3
    } MeetMessageType;

	/// Default constructor, required for automatic de-serialization
	MeetMessage();
	MeetMessage(MeetMessageType type, string connection_phrase, string name);

	
    MeetMessageType getType() const {
        return static_cast<MeetMessageType>(type);
    }

	const string& get_connection_phrase() const;
	const string& get_name() const;

private:
	uint8_t type;
	string connection_phrase;
	string name;
};

sznBeginDefault(MeetMessage, X)
{
    X && type && T(connection_phrase) && T(name);
} sznEnd();

#endif /* MEET_MESSAGE_H_ */
